home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / A-COMAL Series / (k)aab.d64 / src.text < prev    next >
Text File  |  2007-02-28  |  3KB  |  260 lines

  1. ;:::::::::::::::::::::::::::::::::
  2. ; SRC.TEXT (COMAL MODULE)        :
  3. ;                                :
  4. ; BY M.BOKHORST, NOV85           :
  5. ; REVISED BY D.KLINGENS          :
  6. ;                                :
  7. ; DUTCH COMAL USERS GROUP        :
  8. ;:::::::::::::::::::::::::::::::::
  9. ;
  10. ;-- VARIABLES & CONSTANTS --
  11. ;
  12. DEFPAG = %01000110
  13. DUMMY = $CA2F
  14. PROC = 112
  15. ENDPRC = 126
  16. FUNC = 227
  17. ENDFNC = 126
  18. PSHINT = $C9CE
  19. STR = 2
  20. REF = 117
  21. POINT = $FB
  22. FNDPAR = $C896
  23. COPY1 = $45
  24. COPY2 = $47
  25. COPY3 = $49
  26. COPYDN = $C8A2
  27. RUNERR = $C9FB
  28. ;
  29. ;-- MODULE --
  30. ;
  31. * = $8009
  32. ;
  33.  .BYTE DEFPAG
  34. EINDE .WORD END
  35.  .WORD DUMMY
  36.  .BYTE 4,'TEXT'
  37.  .WORD PROCS
  38.  .WORD RESET
  39.  .BYTE 0
  40. ;
  41. ;-- PROCEDURES & FUNCTIONS --
  42. ;
  43. PROCS .BYTE 7,'REWRITE'
  44.  .WORD HEMPTY
  45.  .BYTE 7,'WRITELN'                       .WORD HPUT
  46.  .WORD HPUT
  47.  .BYTE 6,'READLN'
  48.  .WORD HGET
  49.  .BYTE 5,'RESET'
  50.  .WORD HRES
  51.  .BYTE 3,'EOT'
  52.  .WORD HEOT
  53.  .BYTE 0
  54. ;
  55. ;-- HEADERS --
  56. ;
  57. HEMPTY .BYTE PROC
  58.  .WORD EMPTY
  59.  .BYTE 0
  60.  .BYTE ENDPRC
  61. ;
  62. HPUT .BYTE PROC
  63.  .WORD PUT
  64.  .BYTE 1
  65.  .BYTE STR+REF
  66.  .BYTE ENDPRC
  67. ;
  68. HGET .BYTE PROC
  69.  .WORD GET
  70.  .BYTE 1
  71.  .BYTE STR+REF
  72.  .BYTE ENDPRC
  73. ;
  74. HRES .BYTE PROC
  75.  .WORD RESET
  76.  .BYTE 0
  77.  .BYTE ENDPRC
  78. ;
  79. HEOT .BYTE FUNC
  80.  .WORD EOT
  81.  .BYTE 0
  82.  .BYTE ENDFNC
  83. ;
  84. ;-- CODE --
  85. ;
  86. EMPTY LDA #<END
  87.  LDY #>END
  88.  STA EINDE
  89.  STY EINDE+1
  90. ;
  91. RESET LDA #<END
  92.  LDY #>END
  93.  STA POINT
  94.  STY POINT+1
  95.  RTS
  96. ;
  97. EOT JSR TEOF
  98.  LDA #0
  99.  ROL A
  100.  TAX
  101.  LDA #0
  102.  JMP PSHINT
  103. ;
  104. PUT LDA #1
  105.  JSR FNDPAR
  106.  LDA COPY1
  107.  CLC
  108.  ADC #<2
  109.  STA COPY1
  110.  LDA COPY1+1
  111.  ADC #>2
  112.  STA COPY1+1
  113.  LDA EINDE
  114.  LDY EINDE+1
  115.  STA COPY2
  116.  STY COPY2+1
  117.  LDY #1
  118. SETUP LDA (COPY1),Y
  119.  STA COPY3,Y
  120.  DEY
  121.  BPL SETUP
  122. ;
  123.  JSR LEN
  124.  LDA COPY3+1
  125.  CLC
  126.  ADC EINDE
  127.  TAX
  128.  LDA COPY3
  129.  ADC EINDE+1
  130.  CMP #$C0
  131.  BCS OUT
  132.  STX EINDE
  133.  STA EINDE+1
  134.  JMP COPYDN
  135. ;
  136. EOF LDX #201 ;END-OF-FIL
  137.  .BYTE $2C ;SKIP 2
  138. OUT LDX #52 ;OUT OF MEM
  139.  JMP RUNERR
  140. ;
  141. TEOF LDA POINT
  142.  SEC
  143.  SBC EINDE
  144.  LDA POINT+1
  145.  SBC EINDE+1
  146.  RTS
  147. ;
  148. GET JSR TEOF
  149.  BCS EOF
  150.  LDA #1
  151.  JSR FNDPAR
  152.  LDA COPY1
  153.  CLC
  154.  ADC #<2
  155.  STA COPY2
  156.  LDA COPY1+1
  157.  ADC #>2
  158.  STA COPY2+1
  159.  LDY #1
  160.  LDA (COPY1),Y
  161.  SEC
  162.  SBC (POINT),Y
  163.  DEY
  164.  LDA (COPY1),Y
  165.  SBC (POINT),Y
  166.  BCC NOROOM
  167.  LDA POINT
  168.  LDY POINT+1
  169.  STA COPY1
  170.  STY COPY1+1
  171.  LDY #1
  172. SETUP1 LDA (POINT),Y
  173.  STA COPY3,Y
  174.  DEY
  175.  BPL SETUP1
  176.  JSR LEN
  177.  LDA POINT
  178.  CLC
  179.  ADC COPY3+1
  180.  STA POINT
  181.  LDA POINT+1
  182.  ADC COPY3
  183.  STA POINT+1
  184.  JMP COPY
  185. ;
  186. NOROOM LDA (COPY1),Y
  187.  STA COPY3
  188.  PHA
  189.  INY
  190.  LDA (COPY1),Y
  191.  STA COPY3+1
  192.  PHA
  193.  LDA POINT
  194.  LDY POINT+1
  195.  STA COPY1
  196.  STY COPY1+1
  197.  JSR LEN
  198.  LDY #1
  199.  LDA (POINT),Y
  200.  CLC
  201.  ADC POINT
  202.  TAX
  203.  DEY
  204.  LDA (POINT),Y
  205.  ADC POINT+1
  206.  TAY
  207.  TXA
  208.  CLC
  209.  ADC #<2
  210.  STA POINT
  211.  TYA
  212.  ADC #>2
  213.  STA POINT+1
  214.  LDY #1
  215.  PLA
  216.  STA (COPY1),Y
  217.  DEY
  218.  PLA
  219.  STA (COPY1),Y
  220. ;
  221. COPY LDX COPY3
  222.  LDA COPY3+1
  223.  TAY
  224.  BEQ L001
  225.  EOR #255
  226.  TAY
  227.  INY
  228.  CLC
  229.  LDA COPY1
  230.  ADC COPY3+1
  231.  STA COPY1
  232.  BCS L002
  233.  DEC COPY1+1
  234. L002 CLC
  235.  LDA COPY2
  236.  ADC COPY3+1
  237.  STA COPY2
  238.  BCS L003
  239.  DEC COPY2+1
  240. L003 LDA (COPY1),Y
  241.  STA (COPY2),Y
  242.  INY
  243.  BNE L003
  244.  INC COPY1+1
  245.  INC COPY2+1
  246. L001 DEX
  247.  BPL L003
  248.  RTS
  249. ;
  250. LEN LDA COPY3+1
  251.  CLC
  252.  ADC #<2
  253.  STA COPY3+1
  254.  LDA COPY3
  255.  ADC #>2
  256.  STA COPY3
  257.  RTS
  258. ;
  259. END .END
  260.